package br.com.rhweb.beans;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.hibernate.Session;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;

import br.com.rhweb.fachada.Fachada;
import br.com.rhweb.modelos.Usuario;
import br.com.rhweb.util.FacesContextUtil;

@ManagedBean(name="usuarioAutenticado")
@SessionScoped
public class UsuarioAutenticacao implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private Usuario usuario;
	private Session session;
	private Fachada fachada;
	
	public UsuarioAutenticacao(){
		
		fachada = Fachada.obterInstancia();
		session = FacesContextUtil.getRequestSession();
		
		SecurityContext context = SecurityContextHolder.getContext();		
		if(context instanceof SecurityContext){
			Authentication authentication = context.getAuthentication();
			if(authentication instanceof Authentication){
				usuario = fachada.procurar_usuario(session, "user", authentication.getName());
			}
		}
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	
}
